// Nuxt.js 项目需要下面的做法引入！否则报错！！！！
// Nuxt.js 项目需要下面的做法引入！否则报错！！！！
// Nuxt.js 项目需要下面的做法引入！否则报错！！！！
// if(process.client) { var wx = require('weixin-js-sdk') }

// Vue.js 项目正常引入即可
// JS-SDK
var wx = require('weixin-js-sdk');


/**
 * 验证配置(由后端接口提供配置验证的必要参数)
 * @description appId/timestamp/nonceStr/signature等
 * @param {Object} data - 后端必要参数
 * @return void
 */
function config(data) {
	// 手动注入配置
	wx.config({
		debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来，若要查看传入的参数，可以在 pc 端打开，参数信息会通过 log 打出，仅在 pc 端时才会打印。
		appId: data.appId, // 必填，公众号的唯一标识
		timestamp: data.timestamp, // 必填，生成签名的时间戳
		nonceStr: data.nonceStr, // 必填，生成签名的随机串
		signature: data.signature,// 必填，签名
		jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] // 必填，需要使用的 JS 接口列表
	})

    // 或者由后端返回全部的参数 ↓↓↓
    // wx.config(data)
}


/**
 * 设置自定义分享配置(必须在用户可能点击分享按钮前就调用,也就是说提前设置好才行)
 * @description 详见文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#111
 * @param {Object} appMessage - "分享给朋友/分享到QQ" 配置
 * @param {Object} timeLine - "分享到朋友圈/分享到QQ空间" 配置
 * @return void
 */
function wxShare(appMessage = {}, timeLine = {}) {
	wx.ready(() => {
		// "分享给朋友/分享到QQ"
		wx.updateAppMessageShareData(appMessage)
		// "分享到朋友圈/分享到QQ空间"
		wx.updateTimelineShareData(timeLine)
	})
}


export default {
    config: config,
    wxShare: wxShare
}
